package com.bioroadlab.entity;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name = "t_disease", catalog = "captures")
public class Disease implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Integer sn;
	private String phenotypeOmimnumber;
	private String diseaseName;
	private String phenotypicSeries;
	private String clinicaltypicSeries;
	private String inheritance;
	private String mapping;
	private String populationGenetics;
	private String molecularGenetics;
	private String contributors;
	private String creationDate;
	private String editHistory;
	private Set<References> TReferenceses = new HashSet<References>(0);
	private Set<Gene> TGenes = new HashSet<Gene>(0);

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "sn", unique = true, nullable = false)
	public Integer getSn() {
		return this.sn;
	}

	public void setSn(Integer sn) {
		this.sn = sn;
	}

	@Column(name = "phenotypeOMIMnumber", length = 100)
	public String getPhenotypeOmimnumber() {
		return this.phenotypeOmimnumber;
	}

	public void setPhenotypeOmimnumber(String phenotypeOmimnumber) {
		this.phenotypeOmimnumber = phenotypeOmimnumber;
	}

	@Column(name = "diseaseName", length = 100)
	public String getDiseaseName() {
		return this.diseaseName;
	}

	public void setDiseaseName(String diseaseName) {
		this.diseaseName = diseaseName;
	}

	@Column(name = "phenotypicSeries", length = 65535)
	public String getPhenotypicSeries() {
		return this.phenotypicSeries;
	}

	public void setPhenotypicSeries(String phenotypicSeries) {
		this.phenotypicSeries = phenotypicSeries;
	}

	@Column(name = "clinicaltypicSeries", length = 65535)
	public String getClinicaltypicSeries() {
		return this.clinicaltypicSeries;
	}

	public void setClinicaltypicSeries(String clinicaltypicSeries) {
		this.clinicaltypicSeries = clinicaltypicSeries;
	}

	@Column(name = "inheritance", length = 65535)
	public String getInheritance() {
		return this.inheritance;
	}

	public void setInheritance(String inheritance) {
		this.inheritance = inheritance;
	}

	@Column(name = "mapping", length = 65535)
	public String getMapping() {
		return this.mapping;
	}

	public void setMapping(String mapping) {
		this.mapping = mapping;
	}

	@Column(name = "populationGenetics", length = 65535)
	public String getPopulationGenetics() {
		return this.populationGenetics;
	}

	public void setPopulationGenetics(String populationGenetics) {
		this.populationGenetics = populationGenetics;
	}

	@Column(name = "molecularGenetics", length = 65535)
	public String getMolecularGenetics() {
		return this.molecularGenetics;
	}

	public void setMolecularGenetics(String molecularGenetics) {
		this.molecularGenetics = molecularGenetics;
	}

	@Column(name = "contributors", length = 65535)
	public String getContributors() {
		return this.contributors;
	}

	public void setContributors(String contributors) {
		this.contributors = contributors;
	}

	@Column(name = "creationDate", length = 100)
	public String getCreationDate() {
		return this.creationDate;
	}

	public void setCreationDate(String creationDate) {
		this.creationDate = creationDate;
	}

	@Column(name = "editHistory", length = 65535)
	public String getEditHistory() {
		return this.editHistory;
	}

	public void setEditHistory(String editHistory) {
		this.editHistory = editHistory;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "TDisease")
	public Set<References> getTReferenceses() {
		return this.TReferenceses;
	}

	public void setTReferenceses(Set<References> TReferenceses) {
		this.TReferenceses = TReferenceses;
	}

	@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "TDiseases")
	public Set<Gene> getTGenes() {
		return this.TGenes;
	}

	public void setTGenes(Set<Gene> TGenes) {
		this.TGenes = TGenes;
	}

}